package com.tiyunge.system.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.tiyunge.common.annotation.DataSource;
import com.tiyunge.common.enums.DataSourceType;
import com.tiyunge.common.utils.StringUtils;
import com.tiyunge.system.domain.SysBanner;
import com.tiyunge.system.mapper.SysBannerMapper;
import com.tiyunge.system.service.ISysBannerService;

/**
 * 轮播图 服务层实现
 * 
 * @author yejiayu
 */
@Service
public class SysBannerServiceImpl implements ISysBannerService
{
    @Autowired
    private SysBannerMapper bannerMapper;

    /**
     * 查询轮播图信息
     * 
     * @param id 轮播图ID
     * @return 轮播图信息
     */
    @Override
    @DataSource(DataSourceType.MASTER)
    public SysBanner selectBannerById(Long id)
    {
        return bannerMapper.selectBannerById(id);
    }

    /**
     * 查询轮播图列表
     * 
     * @param banner 轮播图信息
     * @return 轮播图集合
     */
    @Override
    public List<SysBanner> selectBannerList(SysBanner banner)
    {
        return bannerMapper.selectBannerList(banner);
    }

    /**
     * 查询前台轮播图列表（只查询正常状态的）
     * 
     * @return 轮播图集合
     */
    @Override
    public List<SysBanner> selectBannerListForFront()
    {
        return bannerMapper.selectBannerListForFront();
    }

    /**
     * 新增轮播图
     * 
     * @param banner 轮播图信息
     * @return 结果
     */
    @Override
    public int insertBanner(SysBanner banner)
    {
        // 如果排序为空，设置为0
        if (banner.getSortOrder() == null)
        {
            banner.setSortOrder(0);
        }
        // 如果状态为空，设置为正常状态
        if (StringUtils.isEmpty(banner.getStatus()))
        {
            banner.setStatus("0");
        }
        return bannerMapper.insertBanner(banner);
    }

    /**
     * 修改轮播图
     * 
     * @param banner 轮播图信息
     * @return 结果
     */
    @Override
    public int updateBanner(SysBanner banner)
    {
        return bannerMapper.updateBanner(banner);
    }

    /**
     * 批量删除轮播图信息
     * 
     * @param ids 需要删除的轮播图ID
     */
    @Override
    public void deleteBannerByIds(Long[] ids)
    {
        for (Long id : ids)
        {
            bannerMapper.deleteBannerById(id);
        }
    }

    /**
     * 删除轮播图信息
     * 
     * @param id 轮播图ID
     * @return 结果
     */
    @Override
    public int deleteBannerById(Long id)
    {
        return bannerMapper.deleteBannerById(id);
    }
}
